Skip to content

fix asan in tests#675

Merged
AlexInLog merged 2 commits into
v2from
fix_asan
Nov 5, 2024
Merged

fix asan in tests#675
AlexInLog merged 2 commits into
v2from
fix_asan

Conversation

@AlexInLog

@AlexInLog AlexInLog commented Nov 5, 2024

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • New Features

    • Expanded test coverage for various scheduler functionalities, including immediate scheduling, complex scheduling, and error handling.
    • Introduced new test cases for the run_loop and thread_pool schedulers to validate their behaviors.
  • Bug Fixes

    • Improved clarity and maintainability of scheduling methods by modifying lambda function parameters.
  • Documentation

    • Enhanced structure of test cases to accurately reflect expected behaviors under different conditions.

@coderabbitai

coderabbitai Bot commented Nov 5, 2024

Copy link
Copy Markdown
Contributor
📝 Walkthrough
📝 Walkthrough

Walkthrough

The changes primarily affect the src/tests/rpp/test_scheduler.cpp file, where test cases for scheduler functionalities have been enhanced. Key modifications include updating lambda function parameters in scheduling methods for clarity, removing the capture of call_count by reference, and introducing a done flag. The test cases have been expanded to cover immediate scheduling, complex scenarios, and error handling. New tests validate the behavior of different schedulers, ensuring comprehensive coverage of expected behaviors and edge cases.

Changes

File Change Summary
src/tests/rpp/test_scheduler.cpp - Updated lambda parameters in worker->schedule method.
- Expanded test cases for various scheduling scenarios.
- Introduced tests for run_loop, thread_pool, and new_thread schedulers.

Possibly related PRs

  • fix threads #648: The changes in this PR also focus on the src/tests/rpp/test_scheduler.cpp file, enhancing test cases for various scheduler functionalities, which aligns closely with the modifications made in the main PR regarding test case adjustments and the introduction of new scenarios.

Poem

🐰 In the land of code where bunnies play,
Tests now dance in a clearer way.
Schedulers hop with flags in tow,
Covering cases, putting on a show!
With every change, our code's a delight,
Hopping through tests, all day and night! 🌟


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 68e6337 and ccd1821.

📒 Files selected for processing (1)
  • src/tests/rpp/test_scheduler.cpp (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/tests/rpp/test_scheduler.cpp

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions

github-actions Bot commented Nov 5, 2024

Copy link
Copy Markdown
Contributor

BENCHMARK RESULTS (AUTOGENERATED)

ci-ubuntu-gcc

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 305.56 ns 1.85 ns 1.71 ns 1.08
Subscribe empty callbacks to empty observable via pipe operator 311.81 ns 1.85 ns 1.72 ns 1.08

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 714.15 ns 0.31 ns 0.28 ns 1.08
from array of 1 - create + subscribe + current_thread 1059.64 ns 3.71 ns 3.41 ns 1.09
concat_as_source of just(1 immediate) create + subscribe 2229.92 ns 138.70 ns 131.03 ns 1.06
defer from array of 1 - defer + create + subscribe + immediate 740.67 ns 0.31 ns 0.30 ns 1.02
interval - interval + take(3) + subscribe + immediate 2150.45 ns 59.19 ns 59.49 ns 0.99
interval - interval + take(3) + subscribe + current_thread 3015.87 ns 32.40 ns 30.07 ns 1.08
from array of 1 - create + as_blocking + subscribe + new_thread 30002.65 ns 28204.54 ns 26067.15 ns 1.08
from array of 1000 - create + as_blocking + subscribe + new_thread 38492.38 ns 53197.53 ns 47843.32 ns 1.11
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3534.79 ns 213.01 ns 195.95 ns 1.09

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1072.84 ns 0.31 ns 0.28 ns 1.08
immediate_just+filter(true)+subscribe 829.94 ns 0.31 ns 0.28 ns 1.08
immediate_just(1,2)+skip(1)+subscribe 1012.35 ns 0.31 ns 0.28 ns 1.08
immediate_just(1,1,2)+distinct_until_changed()+subscribe 893.68 ns 0.31 ns 0.28 ns 1.09
immediate_just(1,2)+first()+subscribe 1243.72 ns 0.31 ns 0.28 ns 1.08
immediate_just(1,2)+last()+subscribe 974.05 ns 0.31 ns 0.28 ns 1.08
immediate_just+take_last(1)+subscribe 1125.19 ns 18.22 ns 16.78 ns 1.09
immediate_just(1,2,3)+element_at(1)+subscribe 831.92 ns 0.31 ns 0.28 ns 1.08

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 336.11 ns 1.54 ns 1.43 ns 1.08
current_thread scheduler create worker + schedule 422.26 ns 4.32 ns 3.99 ns 1.08
current_thread scheduler create worker + schedule + recursive schedule 840.49 ns 63.37 ns 56.03 ns 1.13

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 846.97 ns 0.31 ns 0.28 ns 1.09
immediate_just+scan(10, std::plus)+subscribe 900.94 ns 0.31 ns 0.28 ns 1.08
immediate_just+flat_map(immediate_just(v*2))+subscribe 2374.94 ns 180.78 ns 165.72 ns 1.09
immediate_just+buffer(2)+subscribe 1566.40 ns 13.92 ns 12.81 ns 1.09
immediate_just+window(2)+subscribe + subscsribe inner 2434.92 ns 1347.20 ns 1194.18 ns 1.13

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 832.04 ns - - 0.00
immediate_just+take_while(true)+subscribe 828.16 ns 0.31 ns 0.28 ns 1.08

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 1977.74 ns 0.31 ns 0.28 ns 1.08

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3385.01 ns 234.45 ns 213.50 ns 1.10
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3690.26 ns 182.69 ns 161.82 ns 1.13
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 180.12 ns 168.75 ns 1.07
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3500.38 ns 1241.03 ns 1068.38 ns 1.16
immediate_just(1) + zip(immediate_just(2)) + subscribe 2099.37 ns 257.28 ns 205.77 ns 1.25

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 34.56 ns 14.66 ns 13.53 ns 1.08
subscribe 100 observers to publish_subject 199339.20 ns 16003.29 ns 15167.09 ns 1.06
100 on_next to 100 observers to publish_subject 27356.19 ns 19075.92 ns 17383.18 ns 1.10

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1332.54 ns 12.96 ns 11.95 ns 1.08
basic sample with immediate scheduler 1399.34 ns 5.24 ns 4.84 ns 1.08

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 927.70 ns 0.31 ns 0.28 ns 1.09

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 2136.51 ns 901.90 ns 869.04 ns 1.04
create(on_error())+retry(1)+subscribe 603.45 ns 122.11 ns 112.55 ns 1.08

ci-macos

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 1067.46 ns 0.51 ns 0.47 ns 1.07
Subscribe empty callbacks to empty observable via pipe operator 974.37 ns 0.52 ns 0.51 ns 1.02

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1943.82 ns 0.23 ns 0.23 ns 1.00
from array of 1 - create + subscribe + current_thread 2558.97 ns 32.25 ns 32.43 ns 0.99
concat_as_source of just(1 immediate) create + subscribe 6324.24 ns 446.11 ns 416.97 ns 1.07
defer from array of 1 - defer + create + subscribe + immediate 2330.97 ns 0.26 ns 0.23 ns 1.13
interval - interval + take(3) + subscribe + immediate 5997.42 ns 134.18 ns 112.57 ns 1.19
interval - interval + take(3) + subscribe + current_thread 7073.36 ns 114.00 ns 97.10 ns 1.17
from array of 1 - create + as_blocking + subscribe + new_thread 96256.67 ns 89459.31 ns 121684.40 ns 0.74
from array of 1000 - create + as_blocking + subscribe + new_thread 93935.33 ns 90231.55 ns 140495.10 ns 0.64
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 9592.21 ns 654.16 ns 582.02 ns 1.12

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 2852.77 ns 0.24 ns 0.23 ns 1.05
immediate_just+filter(true)+subscribe 2113.66 ns 0.23 ns 0.24 ns 0.99
immediate_just(1,2)+skip(1)+subscribe 2755.53 ns 0.23 ns 0.24 ns 0.99
immediate_just(1,1,2)+distinct_until_changed()+subscribe 2356.35 ns 0.47 ns 0.47 ns 1.00
immediate_just(1,2)+first()+subscribe 3180.36 ns 0.23 ns 0.24 ns 0.99
immediate_just(1,2)+last()+subscribe 2395.21 ns 0.23 ns 0.23 ns 0.99
immediate_just+take_last(1)+subscribe 3023.76 ns 0.23 ns 0.23 ns 0.99
immediate_just(1,2,3)+element_at(1)+subscribe 2284.08 ns 0.24 ns 0.23 ns 1.04

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 974.06 ns 0.54 ns 0.47 ns 1.15
current_thread scheduler create worker + schedule 1424.38 ns 39.27 ns 33.61 ns 1.17
current_thread scheduler create worker + schedule + recursive schedule 2422.19 ns 237.77 ns 203.10 ns 1.17

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 2151.73 ns 4.24 ns 4.43 ns 0.96
immediate_just+scan(10, std::plus)+subscribe 2587.05 ns 0.51 ns 0.47 ns 1.10
immediate_just+flat_map(immediate_just(v*2))+subscribe 5872.21 ns 543.27 ns 492.31 ns 1.10
immediate_just+buffer(2)+subscribe 2677.62 ns 73.12 ns 65.49 ns 1.12
immediate_just+window(2)+subscribe + subscsribe inner 5770.56 ns 2523.14 ns 2339.18 ns 1.08

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 2092.91 ns - - 0.00
immediate_just+take_while(true)+subscribe 2167.14 ns 0.24 ns 0.24 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 5212.46 ns 5.14 ns 4.91 ns 1.05

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 8406.39 ns 676.70 ns 569.85 ns 1.19
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 9724.01 ns 567.97 ns 485.85 ns 1.17
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 644.82 ns 576.90 ns 1.12
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 9109.73 ns 2252.95 ns 1906.09 ns 1.18
immediate_just(1) + zip(immediate_just(2)) + subscribe 5160.50 ns 1034.13 ns 911.74 ns 1.13

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 73.05 ns 49.04 ns 50.19 ns 0.98
subscribe 100 observers to publish_subject 352599.67 ns 40557.00 ns 40603.39 ns 1.00
100 on_next to 100 observers to publish_subject 56276.61 ns 24115.16 ns 23501.91 ns 1.03

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 2804.01 ns 72.65 ns 72.14 ns 1.01
basic sample with immediate scheduler 2796.22 ns 19.48 ns 18.83 ns 1.03

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 2623.87 ns 0.26 ns 0.23 ns 1.11

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 6900.66 ns 4514.24 ns 4122.65 ns 1.09
create(on_error())+retry(1)+subscribe 1980.85 ns 387.89 ns 374.62 ns 1.04

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 276.49 ns 0.64 ns 1.54 ns 0.42
Subscribe empty callbacks to empty observable via pipe operator 272.22 ns 0.63 ns 1.54 ns 0.41

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 560.33 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 834.24 ns 4.63 ns 4.68 ns 0.99
concat_as_source of just(1 immediate) create + subscribe 2355.57 ns 174.32 ns 179.23 ns 0.97
defer from array of 1 - defer + create + subscribe + immediate 814.82 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 2246.35 ns 58.31 ns 58.27 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3218.86 ns 30.88 ns 30.88 ns 1.00
from array of 1 - create + as_blocking + subscribe + new_thread 30028.68 ns 27849.17 ns 28425.74 ns 0.98
from array of 1000 - create + as_blocking + subscribe + new_thread 39731.12 ns 37121.58 ns 37968.93 ns 0.98
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3677.61 ns 299.58 ns 301.32 ns 0.99

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1175.44 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 840.89 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1109.64 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 881.58 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1408.58 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 1005.42 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 1212.67 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2,3)+element_at(1)+subscribe 865.39 ns 0.31 ns 0.31 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 285.85 ns 1.54 ns 0.63 ns 2.43
current_thread scheduler create worker + schedule 423.06 ns 4.32 ns 4.32 ns 1.00
current_thread scheduler create worker + schedule + recursive schedule 876.95 ns 54.64 ns 53.89 ns 1.01

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 843.59 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 963.63 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 2254.19 ns 225.50 ns 223.05 ns 1.01
immediate_just+buffer(2)+subscribe 1536.48 ns 14.20 ns 14.20 ns 1.00
immediate_just+window(2)+subscribe + subscsribe inner 2551.71 ns 898.53 ns 898.64 ns 1.00

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 832.69 ns - - 0.00
immediate_just+take_while(true)+subscribe 854.94 ns 0.31 ns 0.31 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 2066.35 ns 0.31 ns 0.31 ns 1.00

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3307.70 ns 280.38 ns 280.08 ns 1.00
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3705.79 ns 208.31 ns 212.01 ns 0.98
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 196.02 ns 193.39 ns 1.01
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3415.31 ns 832.11 ns 834.94 ns 1.00
immediate_just(1) + zip(immediate_just(2)) + subscribe 2243.72 ns 193.95 ns 191.60 ns 1.01

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 52.50 ns 17.44 ns 17.56 ns 0.99
subscribe 100 observers to publish_subject 203548.00 ns 16095.36 ns 16104.37 ns 1.00
100 on_next to 100 observers to publish_subject 42699.00 ns 23468.14 ns 23437.48 ns 1.00

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1297.33 ns 12.35 ns 12.34 ns 1.00
basic sample with immediate scheduler 1308.02 ns 5.86 ns 5.86 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 1007.67 ns 0.31 ns 0.31 ns 1.00

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 2193.05 ns 999.55 ns 995.92 ns 1.00
create(on_error())+retry(1)+subscribe 657.90 ns 155.17 ns 155.18 ns 1.00

ci-windows

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 560.62 ns 2.16 ns 2.16 ns 1.00
Subscribe empty callbacks to empty observable via pipe operator 574.12 ns 2.16 ns 2.16 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1153.00 ns 5.24 ns 5.24 ns 1.00
from array of 1 - create + subscribe + current_thread 1428.29 ns 15.45 ns 15.40 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 3756.07 ns 238.01 ns 258.05 ns 0.92
defer from array of 1 - defer + create + subscribe + immediate 1203.06 ns 4.94 ns 4.93 ns 1.00
interval - interval + take(3) + subscribe + immediate 3361.00 ns 140.09 ns 140.05 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3411.63 ns 60.01 ns 59.27 ns 1.01
from array of 1 - create + as_blocking + subscribe + new_thread 118911.11 ns 112211.11 ns 117966.67 ns 0.95
from array of 1000 - create + as_blocking + subscribe + new_thread 128333.33 ns 130512.50 ns 137587.50 ns 0.95
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 5307.33 ns 310.84 ns 306.12 ns 1.02

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1844.52 ns 19.42 ns 19.42 ns 1.00
immediate_just+filter(true)+subscribe 1338.47 ns 18.51 ns 18.50 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1737.31 ns 17.89 ns 17.89 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1359.13 ns 20.68 ns 20.70 ns 1.00
immediate_just(1,2)+first()+subscribe 2064.05 ns 18.21 ns 18.21 ns 1.00
immediate_just(1,2)+last()+subscribe 1796.24 ns 19.12 ns 19.12 ns 1.00
immediate_just+take_last(1)+subscribe 2028.52 ns 64.05 ns 64.53 ns 0.99
immediate_just(1,2,3)+element_at(1)+subscribe 1334.03 ns 20.99 ns 21.00 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 474.43 ns 4.32 ns 4.32 ns 1.00
current_thread scheduler create worker + schedule 649.62 ns 11.99 ns 11.12 ns 1.08
current_thread scheduler create worker + schedule + recursive schedule 1361.24 ns 99.10 ns 99.87 ns 0.99

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 1324.64 ns 18.82 ns 18.82 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 1434.25 ns 20.98 ns 20.96 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 3455.20 ns 271.37 ns 275.47 ns 0.99
immediate_just+buffer(2)+subscribe 2644.08 ns 63.80 ns 63.81 ns 1.00
immediate_just+window(2)+subscribe + subscsribe inner 3993.40 ns 1327.65 ns 1316.15 ns 1.01

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 1624.72 ns 17.58 ns 17.57 ns 1.00
immediate_just+take_while(true)+subscribe 1331.83 ns 18.51 ns 18.50 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 3501.57 ns 11.10 ns 11.10 ns 1.00

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 5118.43 ns 298.99 ns 298.62 ns 1.00
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 5396.38 ns 269.49 ns 270.45 ns 1.00
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 304.88 ns 302.19 ns 1.01
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 5254.38 ns 983.68 ns 945.25 ns 1.04
immediate_just(1) + zip(immediate_just(2)) + subscribe 3534.67 ns 565.13 ns 557.55 ns 1.01

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 37.31 ns 21.22 ns 20.67 ns 1.03
subscribe 100 observers to publish_subject 262225.00 ns 29020.00 ns 26753.49 ns 1.08
100 on_next to 100 observers to publish_subject 51709.09 ns 35762.07 ns 35737.93 ns 1.00

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1897.78 ns 97.07 ns 100.74 ns 0.96
basic sample with immediate scheduler 1879.67 ns 66.73 ns 68.59 ns 0.97

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 1452.58 ns 19.11 ns 19.11 ns 1.00

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 2166.12 ns 238.97 ns 245.63 ns 0.97
create(on_error())+retry(1)+subscribe 1220.85 ns 197.21 ns 206.22 ns 0.96

@codecov

codecov Bot commented Nov 5, 2024

Copy link
Copy Markdown

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 98.48%. Comparing base (a2c2a5f) to head (ccd1821).
Report is 5 commits behind head on v2.

Additional details and impacted files
@@           Coverage Diff           @@
##               v2     #675   +/-   ##
=======================================
  Coverage   98.48%   98.48%           
=======================================
  Files         155      155           
  Lines        9678     9678           
=======================================
  Hits         9531     9531           
  Misses        147      147           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@sonarqubecloud

sonarqubecloud Bot commented Nov 5, 2024

Copy link
Copy Markdown

@AlexInLog AlexInLog merged commit 537ac21 into v2 Nov 5, 2024
@AlexInLog AlexInLog deleted the fix_asan branch November 5, 2024 14:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant